package com.lywz.biz.service.city;

import java.util.Collection;

import com.lywz.biz.common.entity.city.CityEntertainment;
import com.lywz.biz.common.entity.city.CityInfo;
import com.lywz.biz.common.entity.city.CityTourismOrganization;
import com.lywz.biz.common.entity.city.CityTraffic;
import com.lywz.biz.common.enums.City;
import com.lywz.biz.dao.city.CityDao;

/**
 * 城市基本信息的逻辑类
 * 
 * @author zhouxc may
 * @date 2010-4-30
 * @tag
 */

public interface CityInfoService {

    /**
     * 获得所有城市基本信息
     * 
     * @return
     */
    public Collection<CityInfo> getCityInfo();

    /**
     * 由城市ID获得该城市基本信息
     * 
     * @param id
     * @return
     */
    public CityInfo getOneCityById(Short id);

    /**
     * 由城市ID获得该城市的交通信息
     * 
     * @param cityId
     * @return
     */
    public CityTraffic getTrafficById(Short cityId);

    /**
     * 由城市ID获得市内旅游机构
     * 
     * @param cityId
     * @return
     */
    public Collection<CityTourismOrganization> getInsideOrg(Short cityId);

    /**
     * 由城市ID获得市外区县旅游机构
     * 
     * @param cityId
     * @return true/false
     */
    public Collection<CityTourismOrganization> getOutsideOrg(Short cityId);

    /**
     * 添加城市基本信息若添加成功返回true 否则返回false
     * 
     * @param CityInfo
     * @return true/false
     */
    public boolean addCityBasicInfo(CityInfo cityInfo);

    /**
     * 编辑城市基本信息，或成功返回true 否则返回false
     * 
     * @param CityInfo
     * @return true/false
     */
    public boolean modifyCityBasicInfo(CityInfo cityInfo);

    /**
     *获得所有的城市交通信息
     */
    public Collection<CityTraffic> getCityTrafficList();

    /**
     * 获得尚未添加城市交通的城市列表
     */
    public Collection<City> getUnaddedCity(String flag);

    /**
     * 添加城市交通信息
     */
    public boolean addCityTraffic(CityTraffic cityTraffic);
    
    /**
     *由ID獲得交通信息 
     * @param id
     * @return
     */
    public CityTraffic getCityTrafficById(Short id); 

    /**
     * 有cityId获得城市交通
     */
    public CityTraffic getCityTrafficByCityId(Short cityId);

    /**
     * 修改城市交通
     * 
     * @param cityTraffic
     * @return
     */
    public boolean modifyCityTraffic(CityTraffic cityTraffic);

    /**
     * 由cityId获得城市机构列表(true,市内；false 区县)
     * 
     */
    public Collection<CityTourismOrganization> getCityTourismOrgListByCityId(Short cityId,boolean insideOrNot);
    /**
     * 添加城市旅游机构信息
     */
    public boolean addTourismOrg(CityTourismOrganization tourismOrg);
    
    /**
     * 由id删除旅游机构
     * @param cityId
     * @return
     */
    public boolean deleteTourismOrgById(Integer id);
    
    /**
     * 修改旅游机构
     * @param id
     * @return
     */
    public boolean modifyTourismOrg(CityTourismOrganization tourismOrg);
    /**
     * 由cityId获得都市娱乐
     * @param cityId
     * @return
     */
    public CityEntertainment getEntertainmentByCityId(Short cityId);

    /**
     * 获得城市娱乐的类表
     * @return
     */
    public Collection<CityEntertainment> getEntertainmentList();
    /**
     * 由id获得城市娱乐信息
     * @param id
     * @return
     */
    public CityEntertainment getEntertainmentById(int id);
    /**
     * 修改城市娱乐信息
     * @param cityEntertainment
     * @return
     */
    public boolean modifyEntertainment(CityEntertainment cityEntertainment);
    
    public boolean addEntertainment(CityEntertainment entertainment);
    /**
     * 设置cityDao的setter方法
     */
    public void setCityDao(CityDao cityDao);

}
